﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using UricaoWeb.LogicaDeNegocios.Reportes_Graficos___Housekeeping___Limpieza;

namespace UricaoWeb.Presentacion
{
    public partial class API_reportes_HabitacionMasSolicitada : API_Seguridad_Principal
    {
        private ReportesLogica _reportesLog = new ReportesLogica();

        ///<sumary>
        ///Metodo que se encarga de cargar la pagina
        ///Parámetros:
        ///Object sender: objeto obtenido 
        ///EventArgs e:  evento de la ventana 
        ///</sumary>
        protected void Page_Load(object sender, EventArgs e)
        {
            var master = Master as MasterPage;
            if (master != null)
            {
                master.actualizar_label();
            }
            base.validar_usuario();
        }

        ///<sumary>
        ///Metodo que valida la informacion del reporte de habitacion mas solicitada,
        ///cuando se da click al boton continuar 
        ///Parámetros:
        ///Object sender: objeto obtenido 
        ///EventArgs e:  evento de la ventana
        ///</sumary>
        protected void Consultar_Click(object sender, EventArgs e)
        {
            ReportesLogica.LimpiarVariableError();
            if (_reportesLog.ValidacionesGrafico(fechInicio.Value, fechaFin.Value, mensajeDeError))
            {
                List<DatoReporte> data = _reportesLog.GraficoDeTorta("reportesHabitacionMasSolicitada", fechInicio.Value, fechaFin.Value, mensajeDeError);
                
                int _resultadoValidarGrafico = _reportesLog.ValidacionDataTorta(data, mensajeDeError);

                if (_resultadoValidarGrafico == 1)
                {
                    IEnumerable<DatoReporte> listaData = data;
                    List<string> valoresX = new List<string>();
                    List<int> valoresY = new List<int>();
                    for (int i = 0; i < data.Count; i++)
                    {
                        valoresX.Add(data[i].Dato);
                        valoresY.Add(data[i].Cantidad);
                    }
                    _grafico.Series[0].Points.DataBindXY(valoresX,valoresY);
                    _grafico.Visible = true;
                }
                else if (_resultadoValidarGrafico == -1) 
                {
                    mensajesAlUsuario();
                }
            }
        }

        ///<sumary>
        ///Metodo que se encarga del mensaje de alerta para el usuario  
        ///</sumary>
        private void mensajesAlUsuario()
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('" + ReportesLogica._mensaje + "');", true);
        }

  
    }
}